It is quickly becoming a common task in digital computers to compute exponential values, x.sup.g. Exponential values are used in a wide variety of computer applications, such as non-linear control, digital signal processing, simulation, and encryption. However, conventional techniques for computing exponential values present several disadvantages.
One approach commonly used for computing exponential values is to provide a binary multiplier circuit as part of the computer. In fact, many of today's microprocessors include one or more multipliers in their core logic. Typically, the multipliers are capable of multiplying two operands at a time. To compute an exponential value x.sup.g, the input value, x, is presented to both inputs of the multiplier. In turn, the multiplier produces an output of x.sup.2. If a higher order exponential value is desired, for instance, x.sup.9, the output of the multiplier is fed back to one or both of the multiplier inputs and the multiplication-feedback cycle is repeated until the desired exponential value is computed.
This approach has several drawbacks. First, conventional binary multiplier circuits require relatively large amounts of space in an integrated circuit. Furthermore, they are typically slow, in some cases requiring a large number of clock cycles to complete a single multiplication, and they usually consume a large amount of power when compared to other arithmetic circuits, such as adders. Another limitation of this approach is that it requires additional multiplication cycles to compute exponential values having a power greater than two. For example, computing an exponential value of x.sup.16 would require a minimum of four multiplication cycles using a single multiplier circuit. Consequently, such a computation would dramatically decrease the throughput of a computer.
Another known technique for computing exponential values is to provide an analog circuit which determines an exponential value from an analog input value. Typically, the exponential value is also an analog signal which must be converted to a binary word by an analog-to-digital converter before being used by a computer. Although analog exponentiation circuits usually require less time to compute an exponential value than the above-described technique of recursively multiplying binary words, they are generally expensive and difficult to integrate with a digital computer.
In essence, there is a need for a device to compute an exponential value, wherein the device computes an exponential value in substantially less time, require less space and power on an integrated circuit, and integrates more economically with a digital computer than the conventional techniques described above.